package com.jixu.numberapp.test;

import com.jixu.numberapp.utils.NumberUtils;


import java.util.*;

public class Number {

    public static void main(String[] args) {
        long startTime = System.currentTimeMillis();
        LinkedList<Integer> set = new LinkedList<>();
        String number = NumberUtils.getNumber(32); // 猜测的数字
        List<Integer> integerList = new ArrayList<>(); //猜测位数集合
        for (int i = 0; i < number.length(); i++) {
            set.add(i); // 向集合里添加猜测位数
        }
        System.out.println("长度为" + set.size());
        int index = 0; // 记录猜测的位置
        int end = 31; // 数字范围最大值
        int count = 0;// 猜测次数
        boolean flag = true;// 判断条件
        while (flag) {
            int figuresNumber = NumberUtils.getFiguresNumber(0, end); // 集合里的位置数
            int n1 = set.pop();// 猜测位数
            Integer guessNumber = NumberUtils.getGuessNumber(); // 猜测的数字
            if (guessNumber.compareTo(Integer.parseInt(String.valueOf(number.charAt(n1)))) == 0) {
                count++;// 记录次数
                index = n1; // 记录位数
                System.out.println();
                System.out.println("猜对了，母数为" + number);
                System.out.println("猜测的位置是" + n1);
                System.out.println("该位置的数是" + Integer.parseInt(String.valueOf(number.charAt(n1))));
                System.out.println("猜测的数是" + guessNumber);
                end--; // 猜测的范围-1 --> 0-31  > 0-30
                number = NumberUtils.getNumber(32); // 刷新猜测的数字
                if (set.size() == 0) {
                    flag = false;  // 集合中所有的数猜测完毕，程序结束
                }
            }
        }
        long endTime = System.currentTimeMillis();
        System.out.println();
        System.out.println(count);
        System.out.println("耗时为 =" + (endTime - startTime));
    }
}
